/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#ifndef INCLUDE_BASIC_TYPE
#define INCLUDE_BASIC_TYPE

#include "basic_def.h"

/*#ifndef DEF_UE
	typedef char				int8;
	typedef int					int32;

#endif // !DEF_UE*/

	 
#define DEF_转字符串1(s) #s
#define DEF_S(s) DEF_转字符串1(s)



//#include <cmath>
//#include <float.h>
//#include <cassert>
//#include <string.h>



#define ENABLE_VERBOSE_OUTPUT		0
#define ENABLE_APIC_CAPTURE			0
#define ENABLE_PERFALYZE_CAPTURE	0

#if ENABLE_VERBOSE_OUTPUT
#define VERBOSE(a) a##;
#else
#define VERBOSE(a)
#endif

//#define Super __super

// basically just a collection of macros and types
#ifndef UNUSED
#define UNUSED(x) (void)x;
#endif

/*#if !PLATFORM_OPENCL
#include <cassert>
#endif
#include <cstddef>
#include "stdint.h"*/


#ifdef __CUDACC__
#define CUDA_CALLABLE __host__ __device__
#else
#define CUDA_CALLABLE
#endif


#define DEF_源码包装(A) #A


//using namespace std;
#include <iostream>

//#define DEF_foreach_vector_return(i, vec, current, ?????) int32 count = (vec.size()); if(!count) return (?????); auto (current)* = &vec[0]; for( (i) = 0; (i) < count; ++(i))
//#define DEF_foreach_vector(i, vec, current) int32 count = (vec.size()); if(!count) return; auto (current)* = &vec[0];// for( (i) = 0; (i) < count; ++(i) )
//#define DEF_foreach_vector(vec, obj) for(uint32 count = vec.size(), (obj) = &(vec)[0], uint32 i=0;   i<count;   ++i)
//#define DEF_foreach_vector(vec, obj) for((obj) = &(vec)[0];  ;  )

#ifdef _DEBUG  



//#define new new(__FILE__, __LINE__)
//#define malloc malloc(_NORMAL_BAOCK, __FILE__, __LINE__)
//#define calloc calloc(_NORMAL_BAOCK, __FILE__, __LINE__)
//#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)


//#define _CRTDBG_MAP_ALLOC
//#define _CRTDBG_MAP_ALLOC_NEW
//#include <crtdbg.h>

#else



#endif





struct S_类型名称 {
	E_值类型		type;
	std::wstring	name;
};

typedef void(*fp_无参数函数指针)();





#endif //INCLUDE_BASIC_TYPE


